package com.bincloud.vue.admin.web.util.redis;

import java.util.concurrent.TimeUnit;

/**
 * redis 工具类
 * @author bincloud, mvpzhou
 */
public interface RedisService {
    /**
     * 设置键值
     * @param k 键
     * @param v 值
     * @param t 过期时间
     * @param u 单位
     */
    void set(String k, Object v, long t, TimeUnit u);

    /**
     * 设置键值
     * @param k 键
     * @param v 值
     * @param t 过期时间 单位秒
     */
    void set(String k, Object v, long t);

    /**
     * 设置键值
     * @param k 键
     * @param v 值
     */
    void set(String k, Object v);

    /**
     * 获取键值
     * @param k 键
     * @return 值
     */
    Object get(String k);

    /**
     * 获取过期时间
     * @param k 键
     * @param u 单位
     * @return 值
     */
    Long getExpire(String k, TimeUnit u);

    /**
     * 获取过期时间
     * @param k 键
     * @return 值 单位秒
     */
    Long getExpire(String k);

    /**
     * 删除键值
     * @param k 键
     */
    void del(String k);
}
